package com.tupu.service.dispatch;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tupu.entity.dispatch.SignalfrequencyData;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
* @author 15702
* @description 针对表【tb_signalfrequency_data】的数据库操作Service
* @createDate 2023-11-15 11:18:10
*/
public interface SignalfrequencyDataService extends IService<SignalfrequencyData> {

    void countFrequency(LocalDateTime startTime, LocalDateTime endTIme);

    Page<SignalfrequencyData> page(Long page, Long size);

    List<String> findAllStation();

    List<Map<String, Object>> signalFrequencyWarningSignalTypePercent(String deviceType, String station, String signalType, String actionType, String importantType, LocalDateTime startTime, LocalDateTime endTime);

    List<Map<String, Object>> signalFrequencyWarningSignalStationTop5(String deviceType, String station, String signalType, String actionType, String importantType, LocalDateTime startTime, LocalDateTime endTime);

    void signalFrequencyWarningSignalUpdateActionType(SignalfrequencyData data);


    List<String> signalFrequencyWarningSignalImportantList();

    List<String> signalFrequencyWarningSignalActionList();

    List<String> signalFrequencyWarningSignalTypeList();

    void signalFrequencyWarningSignalUpdateImportantTypeType(SignalfrequencyData data);

    List<Map<String, Object>>  signalFrequencyWarningSignalDeviceTop5(LocalDateTime startTime, LocalDateTime endTime);

    List<Map<String, Object>> signalFrequencyWarningSignalSpeed(String deviceType, String station, String signalType, String actionType, String importantType,LocalDateTime startTime, LocalDateTime endTime);

    void exportExcel(HttpServletResponse response, String deviceName, String station, String actionType, String importantType, String signalType, LocalDateTime startTime, LocalDateTime endTime) throws IOException;

    Page<SignalfrequencyData> conditionPage(String deviceType, String station, String signalType, String actionType, String importantType, LocalDateTime startTime, LocalDateTime endTime, Long page, Long size);
}
